Maple
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Maple est un logiciel propriétaire de calcul formel développé depuis les
années 1980 et aujourd'hui édité par la société canadienne Maplesoft. La
version la plus récente est sortie en mars 2023.
Les objets de base du calcul sont les expressions mathématiques,
représentées sous forme de graphes orientés acycliques. Maple fournit un
langage de programmation spécifique, inspiré d'Algol, qui est à la fois
le langage d'utilisation interactive et celui dans lequel est écrite la
plus grande partie de la bibliothèque mathématique du logiciel.
Contents
• Histoire
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Histoire
Maple a été initialement développé au sein du Symbolic Computation Group
Maple a été utilisé dans un nombre remarquable d'applications des
sciences et des mathématiques allant de la démonstration du
dernier théorème de Fermat en théorie des nombres, à des problèmes de la
relativité générale et de la mécanique quantique. Ces applications sont
présentées dans un numéro spécial d'un bulletin d'information créé par
les développeurs de Maple appelé MapleTechcite-ref-3[3].
Fonctionnalités
Le logiciel permet aussi bien de travailler sur des quantités numériques
résolutions de systèmes d'équations linéaires, des
inversions de matrices, des développements asymptotiques ou encore des
résolutions d'équations différentielles sous forme symbolique,
c'est-à-dire en gardant des inconnues dans la résolution. Le système
Maple offre aussi de nombreuses fonctionnalités en théorie des nombres
et en combinatoire.
Maple est un système interprété. Dans son utilisation la plus courante,
l'utilisateur entre une ligne de commande écrite dans un langage
spécifique, et le système retourne un résultat. Par exemple, la commande
suivante calcule la solution de l'équation différentielle du second
ordre y ″ − 3 y = x {\displaystyle y''-3y=x} vérifiant les conditions
initiales y ( 0 ) = 1 {\displaystyle y(0)=1} et y ′ ( 0 ) = 2
{\displaystyle y'(0)=2} :
dsolve({diff(y(x),x,x)-3*y(x)=x,y(0)=1,D(y)(0)=2},y(x));
Il est également possible d'écrire, dans le même langage, des programmes
qui ne seront pas compilés, mais interprétés à leur appel, et d'enrichir
ainsi le système avec de nouvelles commandes.
Au-delà des fonctionnalités de calcul formel et de programmation à
proprement parler, Maple permet par exemple de copier et coller dans un
traitement de texte les formules mathématiques issues des calculs, de
tracer des courbes et surfaces, ou encore de générer des programmes
numériques en langage C. Il offre un mode console et un mode graphique.
Il est disponible sur la majorité des systèmes d'exploitation
Modèle de calcul et langage
Expressions
La structure de donnée fondamentale manipulée par Maple est
l'expression.
Dans la pratique courante, lorsque l’on utilise une expression
mathématique telle que sin ( π / 3 + x ) {\displaystyle \sin(\pi
/3+x)} , on a en tête une fonction ( sin {\displaystyle \sin } ) et un
réel π {\displaystyle \pi } dont on connaît de nombreuses propriétés,
ainsi qu’une variable x {\displaystyle x} . Du point de vue du système,
en revanche, il s’agit d’une expression, formée en l'occurrence d'une
fonction nommée sin {\displaystyle \sin } appliquée à une somme de
deux termes, à savoir une variable nommée x {\displaystyle x} et le
quotient d’une autre variable π {\displaystyle \pi } par l’entier 3
{\displaystyle 3} . Pour toutes les opérations mathématiques que
l’utilisateur souhaite réaliser sur cette expression, le système ne
dispose que de cette information syntaxique. Ainsi, 0 {\displaystyle 0}
et 1 − exp ( 1 ) exp ( − 1 ) {\displaystyle 1-\exp(1)\exp(-1)}
sont deux objets identiques d'un point de vue mathématique, mais très
différents comme expressions Maple. Des questions centrales comme celle
de la simplification, sont liées à cette distinction entre la vision
syntaxique du système et la vision mathématique de l'utilisateur.
Une expression comme le produit
x 2 exp ( 3 2 ) sin ( π 3 − 1 x ) {\displaystyle x^{2}\exp
\left({\frac {3}{2}}\right)\sin \left({\frac {\pi }{3}}-{\frac
{1}{x}}\right)}
est vue comme un arbre. Ici, la racine de l'arbre est étiquetée par
l'opérateur de multiplication *. Ses trois fils sont les (étiquettes
des) racines des arbres qui représentent les trois facteurs x 2
{\displaystyle x^{2}} , exp ( 3 / 2 ) {\displaystyle \exp(3/2)} et
sin ( π / 3 − 1 / x ) {\displaystyle \sin(\pi /3-1/x)} , à savoir
^, exp et sin. Les nœuds de l'arbre, comme la racine, représentent des
opérations ou des fonctions, et les feuilles représentent soit des
rationnels, soit des constantes symboliques ou des indéterminées (comme
π ou x).
Les objets Maple sont (sauf exception) représentés avec partage maximal,
c'est-à-dire que deux objets identiques sont représentées par le même
objet en mémoire. En particulier, les arbres d'expressions sont stockés
comme des graphes orientés acycliques. Concrètement, tous les objets (ou
presque) construits au cours d'une session Maple sont stockés dans une
table de hachage globale. Ceci s'applique non seulement aux objets
nommés, mais aussi aux expressions et sous-expressions qui interviennent
durant le calcul. Chaque sous-objet nouvellement créé est comparé aux
éléments déjà présents dans la table. Si l'objet est nouveau, il est
conservé et ajouté à la table. Si au contraire un objet identique a déjà
été utilisé, l'ancien objet est immédiatement utilisé à la place. Ceci
garantit l'existence d'une seule copie de chaque expression en mémoire.
Les procédures Maple travaillent sur des expressions représentées par de
tels arbres et les opérations de base consistent à analyser ces arbres
pour en déterminer les composants, à extraire ces composants et à les
utiliser pour construire de nouveaux arbres. Les arbres qui se trouvent
sous la racine sont les opérandes de l'expression et peuvent être isolés
par la procédure op, leur nombre étant renvoyé par la commande nops.
L'ordre des opérandes d'un opérateur commutatif peut changer d'une
session à l'autre. La procédure has détermine si une expression apparaît
comme sous-expression d'une autre. Elle permet par exemple de déterminer
qu'une expression est indépendante d'une variable donnée.
Parmi les procédures de base qui construisent de nouveaux objets à
partir d'expressions existantes, citons eval, subs, convert, select et
remove. Notamment, la façon naturelle de calculer la valeur d'une
fonction pour une valeur donnée de ses variables consiste à évaluer
l'expression qui représente la fonction à l'aide de eval. Une procédure
de plus bas niveau que eval est subs, qui effectue une simple
substitution. Le logiciel applique les règles de simplification
automatique, mais n'évalue pas le résultat de la substitution.
Ces procédures ne modifient pas leur argument — la plupart des objets
Maple ne peuvent pas être modifiés — mais en créent des copies altérées.
Grâce au partage maximal, cette copie n'entraîne pas une trop grande
consommation de mémoire.
Variables et indéterminées
Une différence notable entre le langage Maple et les langages de
programmation traditionnels réside dans l'évaluation des variables non
affectées. Dans la plupart des langages, cette évaluation est une
erreur, alors que Maple renvoie le nom de la variable, qui peut être
utilisé comme nom de variable dans une expression. Ce mécanisme permet
de traiter les indéterminées mathématiques comme des variables
informatiques.
L'affectation se visualise comme la création d'une flèche de la variable
vers la valeur. Par exemple, la suite d'affectations x:=y; y:=z; crée
une structure de la forme x → y → z. L'évaluation consiste alors à
suivre ces flèches pour obtenir une valeur. Ainsi, après les
affectations précédentes, x et y s'évaluent toutes deux en z.
Notes et références
cite-note-wikidata-6c95fc849a8c675082841cad94ad5ace3f0c3439-11. « Waterloo, Canada; Mar. 6, 2024: Maplesoft announced », 6 mars 2024 (consulté le 10 février 2025)
cite-note-ge-22. ↑ On the design and performance of the Maple system, Proceedings of the 1984 MACSYMA Users' Conference, 199-219
cite-note-33. ↑ MapleTech Special Issue (numéro spécial) Birkhäuser-Boston, (1994)
Voir aussi
Bibliographie
• Bruce W. Char, Keith O. Geddes, W. Morven Gentleman et Gaston H.
Gonnet, « The design of Maple: a Compact, Portable, and Powerful
Computer Algebra System », Research Report CS-83-06,
Université de Waterloo, 1983
• Keith O. Geddes, Gaston H. Gonnet, Bruce W. Char, « Maple User's
Manual, Second Edition », Université de Waterloo, 1982 (les 17 premières
pages sont constituées de l'article précédent)
Articles connexes
Liens externes
• site-officiel(en) Site officiel
• Notices d'autorité : GND Tchéquie
• Portail des mathématiques
• Portail des logiciels